# 类与对象的关系

# 类的封装：把一类事物所共有的属性及功能放到一个类当中的过程

# 类又称为类别，是一类事物的抽象总称。我们一类事物都共有的属性及方法放在一起就称之为类
#            object:顶级父类
class Animal(object):
    #   __init__ 初始化方法
    def __init__(self,name,type,color):
        self.name = name
        self.type = type
        self.color = color

    #          self:指向本类对象/本类的实例化
    def speark(self,spearks):
        print(self.name+'的叫声是'+spearks)

    def walk(self,walks):
        print(self.name+'的行为是'+walks)

# 实例化类是为了使用类中的属性和方法
coco = Animal('coco','泰迪','棕色')
coco.speark('旺旺~')

# 类的继承-->使子类变得更加丰富，获得更多的功能，降低代码的复杂度
# 类的多态-->当父类的某些功能不满足子类的需求时，需要对子类进行扩展
class Cat(Animal):
    def __init__(self,name,type,color):
        super().__init__(name,type,color)

    def spearks(self,how,spearks):
        print(self.name+how+spearks)

    def test(self):
        print('test')

cat = Cat('橘猫','橘猫','橘色')
cat.speark('喵喵~~')
print(type(cat))

class Tiger(Animal):
    def __init__(self,name,type,color):
        super().__init__(name,type,color)

    def test2(self):
        print('test')

tiger = Tiger('虎先锋','老虎','白色')
cat.speark('嗷嗷嗷~~')



